
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure
-- --------------------------------------------------
-- Date Created: 09/08/2012 18:36:04
-- Generated from EDMX file: C:\Users\Wesley Neves\Documents\Visual Studio 2010\Projects\AspNetCsharp\EstoqueScript\Estoque.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [SisEagle];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO

-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------

IF OBJECT_ID(N'[Cadastro].[FK__Clientes__codEst__46E78A0C]', 'F') IS NOT NULL
    ALTER TABLE [Cadastro].[Clientes] DROP CONSTRAINT [FK__Clientes__codEst__46E78A0C];
GO
IF OBJECT_ID(N'[Controle].[FK_CarrinhoCompras_Clientes]', 'F') IS NOT NULL
    ALTER TABLE [Controle].[CarrinhoCompras] DROP CONSTRAINT [FK_CarrinhoCompras_Clientes];
GO
IF OBJECT_ID(N'[Controle].[FK_CarrinhoCompras_ControleVendas]', 'F') IS NOT NULL
    ALTER TABLE [Controle].[CarrinhoCompras] DROP CONSTRAINT [FK_CarrinhoCompras_ControleVendas];
GO
IF OBJECT_ID(N'[Controle].[FK_CarrinhoCompras_FormasPagamentos]', 'F') IS NOT NULL
    ALTER TABLE [Controle].[CarrinhoCompras] DROP CONSTRAINT [FK_CarrinhoCompras_FormasPagamentos];
GO
IF OBJECT_ID(N'[Controle].[FK_CarrinhoCompras_Funcionario1]', 'F') IS NOT NULL
    ALTER TABLE [Controle].[CarrinhoCompras] DROP CONSTRAINT [FK_CarrinhoCompras_Funcionario1];
GO
IF OBJECT_ID(N'[Controle].[FK_ControleEstoque_Produtos]', 'F') IS NOT NULL
    ALTER TABLE [Controle].[ControleEstoque] DROP CONSTRAINT [FK_ControleEstoque_Produtos];
GO
IF OBJECT_ID(N'[Controle].[FK_ControleVendas_Produtos]', 'F') IS NOT NULL
    ALTER TABLE [Controle].[ControleVendas] DROP CONSTRAINT [FK_ControleVendas_Produtos];
GO
IF OBJECT_ID(N'[dbo].[FK_FornecedorProduto_Fornecedor]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[FornecedorProduto] DROP CONSTRAINT [FK_FornecedorProduto_Fornecedor];
GO
IF OBJECT_ID(N'[dbo].[FK_FornecedorProduto_Produtos]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[FornecedorProduto] DROP CONSTRAINT [FK_FornecedorProduto_Produtos];
GO
IF OBJECT_ID(N'[Cadastro].[FK_Funcionario_Estados]', 'F') IS NOT NULL
    ALTER TABLE [Cadastro].[Funcionario] DROP CONSTRAINT [FK_Funcionario_Estados];
GO
IF OBJECT_ID(N'[Cadastro].[FK_Funcionario_Privilegios]', 'F') IS NOT NULL
    ALTER TABLE [Cadastro].[Funcionario] DROP CONSTRAINT [FK_Funcionario_Privilegios];
GO
IF OBJECT_ID(N'[Cadastro].[FK_Imagens_Produtos]', 'F') IS NOT NULL
    ALTER TABLE [Cadastro].[Imagens] DROP CONSTRAINT [FK_Imagens_Produtos];
GO
IF OBJECT_ID(N'[Cadastro].[FK_Pagamento_CarrinhoCompras]', 'F') IS NOT NULL
    ALTER TABLE [Cadastro].[Pagamento] DROP CONSTRAINT [FK_Pagamento_CarrinhoCompras];
GO
IF OBJECT_ID(N'[Cadastro].[FK_Produtos_Categorias]', 'F') IS NOT NULL
    ALTER TABLE [Cadastro].[Produtos] DROP CONSTRAINT [FK_Produtos_Categorias];
GO

-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------

IF OBJECT_ID(N'[Cadastro].[Categorias]', 'U') IS NOT NULL
    DROP TABLE [Cadastro].[Categorias];
GO
IF OBJECT_ID(N'[Cadastro].[Clientes]', 'U') IS NOT NULL
    DROP TABLE [Cadastro].[Clientes];
GO
IF OBJECT_ID(N'[Cadastro].[Estados]', 'U') IS NOT NULL
    DROP TABLE [Cadastro].[Estados];
GO
IF OBJECT_ID(N'[Cadastro].[Fornecedor]', 'U') IS NOT NULL
    DROP TABLE [Cadastro].[Fornecedor];
GO
IF OBJECT_ID(N'[Cadastro].[Funcionario]', 'U') IS NOT NULL
    DROP TABLE [Cadastro].[Funcionario];
GO
IF OBJECT_ID(N'[Cadastro].[Imagens]', 'U') IS NOT NULL
    DROP TABLE [Cadastro].[Imagens];
GO
IF OBJECT_ID(N'[Cadastro].[Pagamento]', 'U') IS NOT NULL
    DROP TABLE [Cadastro].[Pagamento];
GO
IF OBJECT_ID(N'[Cadastro].[Produtos]', 'U') IS NOT NULL
    DROP TABLE [Cadastro].[Produtos];
GO
IF OBJECT_ID(N'[Controle].[CarrinhoCompras]', 'U') IS NOT NULL
    DROP TABLE [Controle].[CarrinhoCompras];
GO
IF OBJECT_ID(N'[Controle].[ControleEstoque]', 'U') IS NOT NULL
    DROP TABLE [Controle].[ControleEstoque];
GO
IF OBJECT_ID(N'[Controle].[ControleVendas]', 'U') IS NOT NULL
    DROP TABLE [Controle].[ControleVendas];
GO
IF OBJECT_ID(N'[Controle].[FormasPagamentos]', 'U') IS NOT NULL
    DROP TABLE [Controle].[FormasPagamentos];
GO
IF OBJECT_ID(N'[Controle].[Privilegios]', 'U') IS NOT NULL
    DROP TABLE [Controle].[Privilegios];
GO
IF OBJECT_ID(N'[dbo].[FornecedorProduto]', 'U') IS NOT NULL
    DROP TABLE [dbo].[FornecedorProduto];
GO

-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------

-- Creating table 'Categorias'
CREATE TABLE [dbo].[Categorias] (
    [CodCategoria] int IDENTITY(1,1) NOT NULL,
	[NomeCategoria] varchar(max)  NOT NULL,
    [Descricao] varchar(max)  NOT NULL
);
GO

-- Creating table 'Clientes'
CREATE TABLE [dbo].[Clientes] (
    [CodCliente] int IDENTITY(1,1) NOT NULL,
    [Nome] varchar(100)  NOT NULL,
    [Endereco] varchar(50)  NOT NULL,
    [CodCidade] int  NOT NULL,
    [Bairro] varchar(100)  NULL,
    [TelefoneRes] varchar(10)  NULL,
    [TelefoneCel] varchar(10)  NULL,
    [CPF] nvarchar(11)  NOT NULL,
    [codEstado] int  NOT NULL,
    [Email] varchar(max)  NULL
);
GO

-- Creating table 'Estados'
CREATE TABLE [dbo].[Estados] (
    [CodEstado] int  NOT NULL,
    [Sigla] char(2)  NOT NULL,
    [Nome] varchar(100)  NOT NULL
);
GO

-- Creating table 'Fornecedor'
CREATE TABLE [dbo].[Fornecedor] (
    [CodFornecedor] int IDENTITY(1,1) NOT NULL,
    [RazaoSocial] nvarchar(50)  NOT NULL,
    [CNPJ] nvarchar(14)  NOT NULL,
    [Endereco] nvarchar(50)  NOT NULL,
    [Telefone] nchar(10)  NOT NULL,
    [NomeContato] nvarchar(50)  NOT NULL,
    [CodEstado] int  NOT NULL
);
GO

-- Creating table 'Funcionario'
CREATE TABLE [dbo].[Funcionario] (
    [CodFuncionario] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(50)  NULL,
    [Endereco] nvarchar(50)  NULL,
    [CodCidade] int  NOT NULL,
    [Bairro] nvarchar(50)  NULL,
    [CPF] nvarchar(11)  NOT NULL,
    [TelefoneRes] nvarchar(13)  NULL,
    [Email] varchar(max)  NULL,
    [TelefoneCel] nvarchar(13)  NULL,
    [codPrevilegio] int  NOT NULL,
    [Senha] varchar(10)  NOT NULL,
    [codEstado] int  NOT NULL
);
GO

-- Creating table 'Imagens'
CREATE TABLE [dbo].[Imagens] (
    [CodImagem] int IDENTITY(1,1) NOT NULL,
    [codPrduto] int  NOT NULL,
    [Imagem] varbinary(max)  NULL,
    [DescricaoImagem] varchar(max)  NULL
);
GO

-- Creating table 'Pagamento'
CREATE TABLE [dbo].[Pagamento] (
    [CodPagamento] int IDENTITY(1,1) NOT NULL,
    [codCarrinhoCompras] int  NOT NULL,
    [DataVencimento] datetime  NOT NULL,
    [DataPagamento] datetime  NULL
);
GO

-- Creating table 'Produtos'
CREATE TABLE [dbo].[Produtos] (
    [CodProduto] int IDENTITY(1,1) NOT NULL,
    [Descricao] varchar(max)  NOT NULL,
    [Valor_Compra] decimal(17,2)  NOT NULL,
    [Valor_Venda] decimal(17,2)  NOT NULL,
    [Deletado] bit  NOT NULL,
    [codCategoria] int  NOT NULL,
    [NomeProduto] varchar(max)  NOT NULL
);
GO

-- Creating table 'CarrinhoCompras'
CREATE TABLE [dbo].[CarrinhoCompras] (
    [CodCarrinhoCompras] int IDENTITY(1,1) NOT NULL,
    [codVenda] int  NOT NULL,
    [codFuncionario] int  NOT NULL,
    [codCliente] int  NOT NULL,
    [codFormaPagamento] int  NOT NULL
);
GO

-- Creating table 'ControleEstoque'
CREATE TABLE [dbo].[ControleEstoque] (
    [CodProduto] int  NOT NULL,
    [Quantidade] int  NOT NULL,
    [QuantidadeMinima] int  NOT NULL
);
GO

-- Creating table 'ControleVendas'
CREATE TABLE [dbo].[ControleVendas] (
    [CodVenda] int  NOT NULL,
    [codProduto] int  NOT NULL,
    [Quantidade] int  NOT NULL,
    [ValorUnitarioVenda] decimal(6,2)  NOT NULL
);
GO

-- Creating table 'FormasPagamentos'
CREATE TABLE [dbo].[FormasPagamentos] (
    [CodFormaPagamento] int IDENTITY(1,1) NOT NULL,
    [Descricao] nvarchar(max)  NOT NULL,
    [QuantidadeParcelas] int  NOT NULL
);
GO

-- Creating table 'Privilegios'
CREATE TABLE [dbo].[Privilegios] (
    [CodPrevilegio] int IDENTITY(1,1) NOT NULL,
    [Descricao] varchar(max)  NOT NULL
);
GO

-- Creating table 'FornecedorProduto'
CREATE TABLE [dbo].[FornecedorProduto] (
    [Fornecedor_CodFornecedor] int  NOT NULL,
    [Produtos_CodProduto] int  NOT NULL
);
GO

-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------

-- Creating primary key on [CodCategoria] in table 'Categorias'
ALTER TABLE [dbo].[Categorias]
ADD CONSTRAINT [PK_Categorias]
    PRIMARY KEY CLUSTERED ([CodCategoria] ASC);
GO

-- Creating primary key on [CodCliente] in table 'Clientes'
ALTER TABLE [dbo].[Clientes]
ADD CONSTRAINT [PK_Clientes]
    PRIMARY KEY CLUSTERED ([CodCliente] ASC);
GO

-- Creating primary key on [CodEstado] in table 'Estados'
ALTER TABLE [dbo].[Estados]
ADD CONSTRAINT [PK_Estados]
    PRIMARY KEY CLUSTERED ([CodEstado] ASC);
GO

-- Creating primary key on [CodFornecedor] in table 'Fornecedor'
ALTER TABLE [dbo].[Fornecedor]
ADD CONSTRAINT [PK_Fornecedor]
    PRIMARY KEY CLUSTERED ([CodFornecedor] ASC);
GO

-- Creating primary key on [CodFuncionario] in table 'Funcionario'
ALTER TABLE [dbo].[Funcionario]
ADD CONSTRAINT [PK_Funcionario]
    PRIMARY KEY CLUSTERED ([CodFuncionario] ASC);
GO

-- Creating primary key on [CodImagem] in table 'Imagens'
ALTER TABLE [dbo].[Imagens]
ADD CONSTRAINT [PK_Imagens]
    PRIMARY KEY CLUSTERED ([CodImagem] ASC);
GO

-- Creating primary key on [CodPagamento] in table 'Pagamento'
ALTER TABLE [dbo].[Pagamento]
ADD CONSTRAINT [PK_Pagamento]
    PRIMARY KEY CLUSTERED ([CodPagamento] ASC);
GO

-- Creating primary key on [CodProduto] in table 'Produtos'
ALTER TABLE [dbo].[Produtos]
ADD CONSTRAINT [PK_Produtos]
    PRIMARY KEY CLUSTERED ([CodProduto] ASC);
GO

-- Creating primary key on [CodCarrinhoCompras] in table 'CarrinhoCompras'
ALTER TABLE [dbo].[CarrinhoCompras]
ADD CONSTRAINT [PK_CarrinhoCompras]
    PRIMARY KEY CLUSTERED ([CodCarrinhoCompras] ASC);
GO

-- Creating primary key on [CodProduto] in table 'ControleEstoque'
ALTER TABLE [dbo].[ControleEstoque]
ADD CONSTRAINT [PK_ControleEstoque]
    PRIMARY KEY CLUSTERED ([CodProduto] ASC);
GO

-- Creating primary key on [CodVenda] in table 'ControleVendas'
ALTER TABLE [dbo].[ControleVendas]
ADD CONSTRAINT [PK_ControleVendas]
    PRIMARY KEY CLUSTERED ([CodVenda] ASC);
GO

-- Creating primary key on [CodFormaPagamento] in table 'FormasPagamentos'
ALTER TABLE [dbo].[FormasPagamentos]
ADD CONSTRAINT [PK_FormasPagamentos]
    PRIMARY KEY CLUSTERED ([CodFormaPagamento] ASC);
GO

-- Creating primary key on [CodPrevilegio] in table 'Privilegios'
ALTER TABLE [dbo].[Privilegios]
ADD CONSTRAINT [PK_Privilegios]
    PRIMARY KEY CLUSTERED ([CodPrevilegio] ASC);
GO

-- Creating primary key on [Fornecedor_CodFornecedor], [Produtos_CodProduto] in table 'FornecedorProduto'
ALTER TABLE [dbo].[FornecedorProduto]
ADD CONSTRAINT [PK_FornecedorProduto]
    PRIMARY KEY NONCLUSTERED ([Fornecedor_CodFornecedor], [Produtos_CodProduto] ASC);
GO

-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------

-- Creating foreign key on [codCategoria] in table 'Produtos'
ALTER TABLE [dbo].[Produtos]
ADD CONSTRAINT [FK_Produtos_Categorias]
    FOREIGN KEY ([codCategoria])
    REFERENCES [dbo].[Categorias]
        ([CodCategoria])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Produtos_Categorias'
CREATE INDEX [IX_FK_Produtos_Categorias]
ON [dbo].[Produtos]
    ([codCategoria]);
GO

-- Creating foreign key on [codEstado] in table 'Clientes'
ALTER TABLE [dbo].[Clientes]
ADD CONSTRAINT [FK__Clientes__codEst__46E78A0C]
    FOREIGN KEY ([codEstado])
    REFERENCES [dbo].[Estados]
        ([CodEstado])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK__Clientes__codEst__46E78A0C'
CREATE INDEX [IX_FK__Clientes__codEst__46E78A0C]
ON [dbo].[Clientes]
    ([codEstado]);
GO

-- Creating foreign key on [codCliente] in table 'CarrinhoCompras'
ALTER TABLE [dbo].[CarrinhoCompras]
ADD CONSTRAINT [FK_CarrinhoCompras_Clientes]
    FOREIGN KEY ([codCliente])
    REFERENCES [dbo].[Clientes]
        ([CodCliente])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CarrinhoCompras_Clientes'
CREATE INDEX [IX_FK_CarrinhoCompras_Clientes]
ON [dbo].[CarrinhoCompras]
    ([codCliente]);
GO

-- Creating foreign key on [codEstado] in table 'Funcionario'
ALTER TABLE [dbo].[Funcionario]
ADD CONSTRAINT [FK_Funcionario_Estados]
    FOREIGN KEY ([codEstado])
    REFERENCES [dbo].[Estados]
        ([CodEstado])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Funcionario_Estados'
CREATE INDEX [IX_FK_Funcionario_Estados]
ON [dbo].[Funcionario]
    ([codEstado]);
GO

-- Creating foreign key on [codFuncionario] in table 'CarrinhoCompras'
ALTER TABLE [dbo].[CarrinhoCompras]
ADD CONSTRAINT [FK_CarrinhoCompras_Funcionario1]
    FOREIGN KEY ([codFuncionario])
    REFERENCES [dbo].[Funcionario]
        ([CodFuncionario])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CarrinhoCompras_Funcionario1'
CREATE INDEX [IX_FK_CarrinhoCompras_Funcionario1]
ON [dbo].[CarrinhoCompras]
    ([codFuncionario]);
GO

-- Creating foreign key on [codPrevilegio] in table 'Funcionario'
ALTER TABLE [dbo].[Funcionario]
ADD CONSTRAINT [FK_Funcionario_Privilegios]
    FOREIGN KEY ([codPrevilegio])
    REFERENCES [dbo].[Privilegios]
        ([CodPrevilegio])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Funcionario_Privilegios'
CREATE INDEX [IX_FK_Funcionario_Privilegios]
ON [dbo].[Funcionario]
    ([codPrevilegio]);
GO

-- Creating foreign key on [codPrduto] in table 'Imagens'
ALTER TABLE [dbo].[Imagens]
ADD CONSTRAINT [FK_Imagens_Produtos]
    FOREIGN KEY ([codPrduto])
    REFERENCES [dbo].[Produtos]
        ([CodProduto])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Imagens_Produtos'
CREATE INDEX [IX_FK_Imagens_Produtos]
ON [dbo].[Imagens]
    ([codPrduto]);
GO

-- Creating foreign key on [codCarrinhoCompras] in table 'Pagamento'
ALTER TABLE [dbo].[Pagamento]
ADD CONSTRAINT [FK_Pagamento_CarrinhoCompras]
    FOREIGN KEY ([codCarrinhoCompras])
    REFERENCES [dbo].[CarrinhoCompras]
        ([CodCarrinhoCompras])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Pagamento_CarrinhoCompras'
CREATE INDEX [IX_FK_Pagamento_CarrinhoCompras]
ON [dbo].[Pagamento]
    ([codCarrinhoCompras]);
GO

-- Creating foreign key on [CodProduto] in table 'ControleEstoque'
ALTER TABLE [dbo].[ControleEstoque]
ADD CONSTRAINT [FK_ControleEstoque_Produtos]
    FOREIGN KEY ([CodProduto])
    REFERENCES [dbo].[Produtos]
        ([CodProduto])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [codProduto] in table 'ControleVendas'
ALTER TABLE [dbo].[ControleVendas]
ADD CONSTRAINT [FK_ControleVendas_Produtos]
    FOREIGN KEY ([codProduto])
    REFERENCES [dbo].[Produtos]
        ([CodProduto])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_ControleVendas_Produtos'
CREATE INDEX [IX_FK_ControleVendas_Produtos]
ON [dbo].[ControleVendas]
    ([codProduto]);
GO

-- Creating foreign key on [codVenda] in table 'CarrinhoCompras'
ALTER TABLE [dbo].[CarrinhoCompras]
ADD CONSTRAINT [FK_CarrinhoCompras_ControleVendas]
    FOREIGN KEY ([codVenda])
    REFERENCES [dbo].[ControleVendas]
        ([CodVenda])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CarrinhoCompras_ControleVendas'
CREATE INDEX [IX_FK_CarrinhoCompras_ControleVendas]
ON [dbo].[CarrinhoCompras]
    ([codVenda]);
GO

-- Creating foreign key on [codFormaPagamento] in table 'CarrinhoCompras'
ALTER TABLE [dbo].[CarrinhoCompras]
ADD CONSTRAINT [FK_CarrinhoCompras_FormasPagamentos]
    FOREIGN KEY ([codFormaPagamento])
    REFERENCES [dbo].[FormasPagamentos]
        ([CodFormaPagamento])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_CarrinhoCompras_FormasPagamentos'
CREATE INDEX [IX_FK_CarrinhoCompras_FormasPagamentos]
ON [dbo].[CarrinhoCompras]
    ([codFormaPagamento]);
GO

-- Creating foreign key on [Fornecedor_CodFornecedor] in table 'FornecedorProduto'
ALTER TABLE [dbo].[FornecedorProduto]
ADD CONSTRAINT [FK_FornecedorProduto_Fornecedor]
    FOREIGN KEY ([Fornecedor_CodFornecedor])
    REFERENCES [dbo].[Fornecedor]
        ([CodFornecedor])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [Produtos_CodProduto] in table 'FornecedorProduto'
ALTER TABLE [dbo].[FornecedorProduto]
ADD CONSTRAINT [FK_FornecedorProduto_Produtos]
    FOREIGN KEY ([Produtos_CodProduto])
    REFERENCES [dbo].[Produtos]
        ([CodProduto])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_FornecedorProduto_Produtos'
CREATE INDEX [IX_FK_FornecedorProduto_Produtos]
ON [dbo].[FornecedorProduto]
    ([Produtos_CodProduto]);
GO

-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------